#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>

#define FILE_NAME(number) "log.txt"#number //字符串拼接

int main()
{
    printf("stdin->fd:%d\n",stdin->_fileno);
    printf("stdout->fd:%d\n",stdout->_fileno);
    printf("stderr->fd:%d\n",stderr->_fileno);
    
   umask(0);
   int fd0 = open(FILE_NAME(1),O_WRONLY|O_CREAT,0666);
   int fd1 = open(FILE_NAME(2),O_WRONLY|O_CREAT,0666);
   int fd2 = open(FILE_NAME(3),O_WRONLY|O_CREAT,0666);
   int fd3 = open(FILE_NAME(4),O_WRONLY|O_CREAT,0666);
   int fd4 = open(FILE_NAME(5),O_WRONLY|O_CREAT,0666);
   
   printf("fd:%d\n",fd0); 
   printf("fd:%d\n",fd1);
   printf("fd:%d\n",fd2);
   printf("fd:%d\n",fd3);
   printf("fd:%d\n",fd4);
   
   close(fd0);
   close(fd1);
   close(fd2);
   close(fd3);
   close(fd4);

   return 0;





//    umask(0);//系统默认文件mask为0002，也可以更改。
//   // int fd = open("log.txt",O_WRONLY|O_CREAT,0666);
//    int fd = open("log.txt",O_RDONLY);
//    if(fd<0)
//    {
//        perror("open");
//        return 1;
//    }
//    //"hello world:5" hello world是字符串，5、4、3、2、1是整数
//    //所以要将"hello world:5"... 格式化为字符串
//   // int cnt = 5;
//   // char outBuffer[64];
//   // while(cnt)
//   // {
//   //     sprintf(outBuffer,"%s:%d\n","hello world!",cnt--); //将格式化数据转化为字符串存储在outBuffer中
//   //     write(fd,outBuffer,strlen(outBuffer));
//   //     //向文件写入string时，要不要+1，即strlen(outBuffer)+1，将字符串末尾的"\0"写入 ?
//   //     //不需要，以"\0"作为字符串结尾，是c语言规定的，和文件没有关系。文件要的是字符串的有效内容。
//   // }
//    char buffer[1024];
//    ssize_t num = read(fd,buffer,sizeof(buffer)-1);
//    if(num > 0)
//    {
//        buffer[num] = 0; //将读取结果最后一个字符置为\0，证明读取到的为字符串。
//    }
//    printf("%s",buffer);
//    close(fd);
//    
//
//    return 0;
//   // FILE* fp = fopen("log.txt","w"); //w 只写方式打开，不存在创建。存在将内容自动清空
//   // FILE* fp = fopen("log.txt","r"); //r 只读方式打开
//    FILE* fp = fopen("log.txt","a");   //a 以追加方式打开
//    if(NULL == fp)
//    {
//        perror("fopen");
//        return 1;
//    }
//
//    
//    char buffer[64];
//    while(fgets(buffer,sizeof(buffer)-1,fp) != NULL)
//    {
//        buffer[strlen(buffer)-1] = 0;
//       // fputs(buffer,stdout);
//        puts(buffer);//会在末尾自动添加\n
//    }
//    
//  //  int cnt = 5;
//  //  while(cnt)
//  //  {
//  //      fprintf(fp,"%s:%d\n","hello world!",cnt--);
//  //  }
//
//
// 
//    fclose(fp);
//
//
//    return 0;
}
